﻿/*
 ***************************************************************************
 * Microsoft Visual C# .NET
 * 名称：       Shpm.System.Web.Control.CheckSpecLen
 * 类型：       服务端输入校验类
 * 功能说明：   位数超过指定的长度校验类
 * 作者：       郭晓庆
 * 创建日期：   2007/07/10
 * 修改日期     修改者      修改内容
 * 
 * 
 * ---
 ***************************************************************************
*/
using System;
using System.Collections.Generic;
using System.Text;

namespace Shpm.System.Web.Control
{
    public class CheckSpecLen : ComAbsChecker
    {
        /** 指定的位数 */
        private int specLen = 0;

        /**
         * 构造函数
         * @param value   输入值
         * @param specLen 指定的位数
         */
        public CheckSpecLen(String value, int specLen)
            : base(value)
        {
            this.specLen = specLen;
        }

        public CheckSpecLen(String value, int specLen,Shpm.System.Validator.ComAbsMsg msg)
            : base(value, msg)
        {
            this.specLen = specLen;
        }

        /**
         * 位数检查处理。
         * @param value 输入值
         * @return true:正常 / false:异常
         */
        protected override bool doCheck(String value)
        {

            if (base.isEmpty(value))
            {
                return true;
            }

            // 位数检查
            if ( Encoding.UTF8.GetBytes(value).Length != this.specLen)
            {
                return false;
            }

            return true;
        }
    }
}
